Bem-vindo à Aula 7, onde apresentamos Aprendizado por Transferência. Essa técnica envolve reutilizar um modelo de aprendizado profundo já treinado em um conjunto de dados amplo e geral (como o ImageNet) e adaptá-lo para resolver uma nova tarefa específica (como o nosso desafio FoodVision). É essencial para alcançar resultados de ponta de forma eficiente, especialmente quando os conjuntos de dados rotulados são limitados.
1. O Poder dos Pesos Pré-treinados
Redes neurais profundas aprendem características de forma hierárquica. Camadas mais baixas aprendem conceitos fundamentais (arestas, cantos, texturas), enquanto camadas mais profundas combinam essas características em conceitos complexos (olhos, rodas, objetos específicos). A principal observação é que as características fundamentais aprendidas inicialmente são universalmente aplicáveis em quase todos os domínios visuais.
Componentes do Aprendizado por Transferência
- Tarefa de Origem: Treinamento em 14 milhões de imagens e 1000 categorias (por exemplo, ImageNet).
- Tarefa-Alvo: Adaptando os pesos para classificar um conjunto de dados muito menor (por exemplo, nossas classes específicas do FoodVision).
- Componente Aproveitado: A grande maioria dos parâmetros da rede — as camadas de extração de características — é reutilizada diretamente.
Execute o código para inspecionar tensores ativos
O tamanho do recurso de entrada deve corresponder à saída da camada base congelada.
Tamanho: 512.
O tamanho de saída de 512 é a entrada, e a contagem de classes 7 é a saída.
Código:
new_layer = torch.nn.Linear(512, 7)O tamanho de recurso de saída deve corresponder ao número de classes-alvo.
Tamanho: 7.